<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Get API key information API | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="security-api.html" title="Security APIs">
<link rel="prev" href="security-api-enable-user.html" title="Enable users API">
<link rel="next" href="security-api-get-privileges.html" title="Get application privileges API">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="rest-apis.html">REST APIs</a></span>
»
<span class="breadcrumb-link"><a href="security-api.html">Security APIs</a></span>
»
<span class="breadcrumb-node">Get API key information API</span>
</div>
<div class="navheader">
<span class="prev">
<a href="security-api-enable-user.html">« Enable users API</a>
</span>
<span class="next">
<a href="security-api-get-privileges.html">Get application privileges API »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="security-api-get-api-key"></a>Get API key information API<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a><a class="xpack_tag" href="/subscriptions"></a>
</h2>
</div></div></div>

<p>Retrieves information for one or more API keys.</p>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="security-api-get-api-key-request"></a>Request<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a>
</h3>
</div></div></div>
<p><code class="literal">GET /_security/api_key</code></p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="security-api-get-api-key-prereqs"></a>Prerequisites<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
To use this API, you must have at least the <code class="literal">manage_api_key</code> cluster privilege.
</li>
</ul>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="security-api-get-api-key-desc"></a>Description<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a>
</h3>
</div></div></div>
<p>The information for the API keys created by
<a class="xref" href="security-api-create-api-key.html" title="Create API key API">create API Key</a> can be retrieved using this API.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="security-api-get-api-key-path-params"></a>Path parameters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a>
</h3>
</div></div></div>
<p>The following parameters can be specified in the query parameters of a GET request and
pertain to retrieving api keys:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">id</code>
</span>
</dt>
<dd>
(Optional, string) An API key id. This parameter cannot be used with any of
<code class="literal">name</code>, <code class="literal">realm_name</code> or <code class="literal">username</code> are used.
</dd>
<dt>
<span class="term">
<code class="literal">name</code>
</span>
</dt>
<dd>
(Optional, string) An API key name. This parameter cannot be used with any of
<code class="literal">id</code>, <code class="literal">realm_name</code> or <code class="literal">username</code> are used.
</dd>
<dt>
<span class="term">
<code class="literal">realm_name</code>
</span>
</dt>
<dd>
(Optional, string) The name of an authentication realm. This parameter cannot be
used with either <code class="literal">id</code> or <code class="literal">name</code> or when <code class="literal">owner</code> flag is set to <code class="literal">true</code>.
</dd>
<dt>
<span class="term">
<code class="literal">username</code>
</span>
</dt>
<dd>
(Optional, string) The username of a user. This parameter cannot be used with
either <code class="literal">id</code> or <code class="literal">name</code> or when <code class="literal">owner</code> flag is set to <code class="literal">true</code>.
</dd>
<dt>
<span class="term">
<code class="literal">owner</code>
</span>
</dt>
<dd>
(Optional, boolean) A boolean flag that can be used to query API keys owned
by the currently authenticated user. Defaults to false.
The <em>realm_name</em> or <em>username</em> parameters cannot be specified when this
parameter is set to <em>true</em> as they are assumed to be the currently authenticated ones.
</dd>
</dl>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>When none of the parameters "id", "name", "username" and "realm_name"
are specified, and the "owner" is set to false then it will retrieve all API
keys if the user is authorized. If the user is not authorized to retrieve other user’s
API keys, then an error will be returned.</p>
</div>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="security-api-get-api-key-example"></a>Examples<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/rest-api/security/get-api-keys.asciidoc">edit</a>
</h3>
</div></div></div>
<p>If you create an API key as follows:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /_security/api_key
{
  "name": "my-api-key",
  "role_descriptors": {}
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/2086.console"></div>
<p>A successful call returns a JSON structure that provides
API key information. For example:</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
  "id":"VuaCfGcBCdbkQm-e5aOx",
  "name":"my-api-key",
  "api_key":"ui2lp2axTNmsyakw9tvNnw"
}</pre>
</div>
<p>You can use the following example to retrieve the API key by ID:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?id=VuaCfGcBCdbkQm-e5aOx</pre>
</div>
<div class="console_widget" data-snippet="snippets/2087.console"></div>
<p>You can use the following example to retrieve the API key by name:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?name=my-api-key</pre>
</div>
<div class="console_widget" data-snippet="snippets/2088.console"></div>
<p>The following example retrieves all API keys for the <code class="literal">native1</code> realm:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?realm_name=native1</pre>
</div>
<div class="console_widget" data-snippet="snippets/2089.console"></div>
<p>The following example retrieves all API keys for the user <code class="literal">myuser</code> in all realms:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?username=myuser</pre>
</div>
<div class="console_widget" data-snippet="snippets/2090.console"></div>
<p>The following example retrieves all API keys owned by the currently authenticated user:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?owner=true</pre>
</div>
<div class="console_widget" data-snippet="snippets/2091.console"></div>
<p>The following example retrieves all API keys if the user is authorized to do so:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key</pre>
</div>
<div class="console_widget" data-snippet="snippets/2092.console"></div>
<p>Following creates an API key</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST /_security/api_key
{
  "name": "my-api-key-1"
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/2093.console"></div>
<p>The following example retrieves the API key identified by the specified <code class="literal">id</code> if
it is owned by the currently authenticated user:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?id=VuaCfGcBCdbkQm-e5aOx&amp;owner=true</pre>
</div>
<div class="console_widget" data-snippet="snippets/2094.console"></div>
<p>Finally, the following example retrieves all API keys for the user <code class="literal">myuser</code> in
 the <code class="literal">native1</code> realm immediately:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_security/api_key?username=myuser&amp;realm_name=native1</pre>
</div>
<div class="console_widget" data-snippet="snippets/2095.console"></div>
<p>A successful call returns a JSON structure that contains the information of one or more API keys that were retrieved.</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
  "api_keys": [ <a id="CO659-1"></a><i class="conum" data-value="1"></i>
    {
      "id": "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==", <a id="CO659-2"></a><i class="conum" data-value="2"></i>
      "name": "hadoop_myuser_key", <a id="CO659-3"></a><i class="conum" data-value="3"></i>
      "creation": 1548550550158, <a id="CO659-4"></a><i class="conum" data-value="4"></i>
      "expiration": 1548551550158, <a id="CO659-5"></a><i class="conum" data-value="5"></i>
      "invalidated": false, <a id="CO659-6"></a><i class="conum" data-value="6"></i>
      "username": "myuser", <a id="CO659-7"></a><i class="conum" data-value="7"></i>
      "realm": "native1" <a id="CO659-8"></a><i class="conum" data-value="8"></i>
    },
    {
      "id": "api-key-id-2",
      "name": "api-key-name-2",
      "creation": 1548550550158,
      "invalidated": false,
      "username": "user-y",
      "realm": "realm-2"
    }
  ]
}</pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>The list of API keys that were retrieved for this request.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>Id for the API key</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>Name of the API key</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-4"><i class="conum" data-value="4"></i></a></p>
</td>
<td align="left" valign="top">
<p>Creation time for the API key in milliseconds</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-5"><i class="conum" data-value="5"></i></a></p>
</td>
<td align="left" valign="top">
<p>Optional expiration time for the API key in milliseconds</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-6"><i class="conum" data-value="6"></i></a></p>
</td>
<td align="left" valign="top">
<p>Invalidation status for the API key. If the key has been invalidated, it has
a value of <code class="literal">true</code>. Otherwise, it is <code class="literal">false</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-7"><i class="conum" data-value="7"></i></a></p>
</td>
<td align="left" valign="top">
<p>Principal for which this API key was created</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO659-8"><i class="conum" data-value="8"></i></a></p>
</td>
<td align="left" valign="top">
<p>Realm name of the principal for which this API key was created</p>
</td>
</tr>
</table>
</div>
</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="security-api-enable-user.html">« Enable users API</a>
</span>
<span class="next">
<a href="security-api-get-privileges.html">Get application privileges API »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
